package cn.com.dcsgo.validation.menu.validator;

import cn.com.dcsgo.validation.menu.MenuValidationResult;

import java.util.Map;

/**
 * 菜单校验器
 * 1.目录的PID只能是0
 * 2.菜单的PID不能是按钮
 * 3.按钮的PID只能是菜单
 *
 * @author Dcsgo
 * @since 2025/10/12 12:37
 */

public abstract class MenuValidator {
    /**
     * 校验字段
     * key: 字段名
     * value: 字段值
     */
    protected Map<String, Object> validatorFields;
    /**
     * 校验器是否就绪
     */
    protected boolean isReady;

    /**
     * 准备校验，初始化校验器为校验字段赋值
     *
     * @param validatorFields 校验字段及其值
     */

    public abstract void prepareValidate(Map<String, Object> validatorFields);

    /**
     * 校验
     *
     * @return 校验结果
     */
    public abstract MenuValidationResult validate();
}
